4
תגובות
הדפסת XML עם הזחה
פתח
mmm
,
שלום חברים, אני כותב ערכים לתוך קובץ XML.
זה הקוד שלי:
תתעלמו מהתנאי.
הבעיה שזה מכניס את התגים לקובץ בלי ירידות שורה, ובלי הזחה, יש למישהו מושג איך לעשות את זה?
זה הקוד שלי:
$xml = simplexml_load_file('lang.xml');
$xmlTextID = $xml->text->count() + 1;
$myxml = $xml->addChild('text');
$myxml->addAttribute('id', $xmlTextID);
$myxml->addChild('he', $_POST['he']);
$myxml->addChild('en', $_POST['en']);
if(file_put_contents('lang.xml', $xml->asXML())) {
$xmlTextID = $xml->text->count() + 1;
$myxml = $xml->addChild('text');
$myxml->addAttribute('id', $xmlTextID);
$myxml->addChild('he', $_POST['he']);
$myxml->addChild('en', $_POST['en']);
if(file_put_contents('lang.xml', $xml->asXML())) {
תתעלמו מהתנאי.
הבעיה שזה מכניס את התגים לקובץ בלי ירידות שורה, ובלי הזחה, יש למישהו מושג איך לעשות את זה?
4 תשובות
תצטרך להשתמש ב DomDocument
$dom = new DOMDocument('1.0');
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->loadXML($myxml->asXML());
echo $dom->saveXML();
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->loadXML($myxml->asXML());
echo $dom->saveXML();
האמת שראיתי את זה, והשתמשתי בזה, רק שלא השתמשתי ב-DomDocument, דברים מוזרים קרו.
תודה רבה אלכס.
$xml = new DOMDocument('1.0');
$xml ->load('lang.xml');
$xml ->preserveWhiteSpace = false;
$xml->formatOutput = true;
$xpath = new DOMXPath($xml);
$results = $xpath->query('/lang');
$baz_node_of_xml = $results->item(0);
$new_node = $xml->createElement('text');
$text_node = $xml->createTextNode('fdfd');
$new_node->appendChild($text_node);
$baz_node_of_xml->appendChild($new_node);
file_put_contents('lang.xml', $xml->saveXML())
$xml ->load('lang.xml');
$xml ->preserveWhiteSpace = false;
$xml->formatOutput = true;
$xpath = new DOMXPath($xml);
$results = $xpath->query('/lang');
$baz_node_of_xml = $results->item(0);
$new_node = $xml->createElement('text');
$text_node = $xml->createTextNode('fdfd');
$new_node->appendChild($text_node);
$baz_node_of_xml->appendChild($new_node);
file_put_contents('lang.xml', $xml->saveXML())
זה הקוד החדש, לא עובד, אני עדיין מקבל את הכל בשורה אחת, אחרי שעתיים שניסיתי להבין איך לעבוד עם DOMDocument ששונה לגמרי מSIMPLExml.
יש לך מושג מה יכול להיות הפתרון?